#ifndef _PWR_HW_H_
#define _PWR_HW_H_

#include "soc.h"

typedef struct {
	_RW CR;   /*!< PWR power control register,        offset: 0x00 */
	_RW CSR;  /*!< PWR power control/status register, offset: 0x04 */
} PWR_Struct;

extern PWR_Struct SOC_PWR;

/**
 * 控制
 */
#define PWR_CR_STOP         (0x0U<<0)  /* WFI/WFE指令进入停止模式，唤醒需要等待时钟就绪 */
#define PWR_CR_STOP_LP      (0x1U<<0)  /* WFI/WFE指令进入停止模式，唤醒需要等待时钟就绪，以及调压器退出低功耗 */
#define PWR_CR_STANDBY      (0x2U<<0)  /* WFI/WFE指令进入待机模式，唤醒会复位 */
#define PWR_CR_CWUF         (0x1U<<2)  /* 写1清除唤醒标志，硬件清零 */
#define PWR_CR_CSBF         (0x1U<<3)  /* 写1清除待机标志，硬件清零 */
#define PWR_CR_PVDE         (0x1U<<4)  /* 使能电源电压检测器 */
#define PWR_CR_PLS_2_0V     (0x0U<<5)  /* 电压检测器检测的电压阈值 */
#define PWR_CR_PLS_2_1V     (0x1U<<5)
#define PWR_CR_PLS_2_3V     (0x2U<<5)
#define PWR_CR_PLS_2_5V     (0x3U<<5)
#define PWR_CR_PLS_2_6V     (0x4U<<5)
#define PWR_CR_PLS_2_7V     (0x5U<<5)
#define PWR_CR_PLS_2_8V     (0x6U<<5)
#define PWR_CR_PLS_2_9V     (0x7U<<5)
#define PWR_CR_DBP          (0x1U<<8)  /* 使能对 RTC、 RTC 备份寄存器和备份 SRAM 的访问 */
#define PWR_CR_FPDS         (0x1U<<9)  /* 器件进入停止模式时 Flash 掉电，唤醒时需要等待Flash就绪 */
#define PWR_CR_VOS_1        (0x1U<<14) /* 内部主调压器的输出电压级别 1 模式（复位时的默认值），最大工作频率168MHz */
#define PWR_CR_VOS_2        (0x0U<<14) /* 最大工作频率144MHz */

#endif /* _PWR_HW_H_ */
